gtk4.git
17 years agoRemove_gdk_pixmap_set_as_backing etc, as this is not used anymore
Alexander Larsson [Tue, 27 Jan 2009 14:38:39 +0000 (15:38 +0100)]
Remove_gdk_pixmap_set_as_backing etc, as this is not used anymore

We don't copy from a window to a pixmap anymore, so all the code
for this can be removed.

17 years agoFix warning about XChangeProperty argument type
Alexander Larsson [Tue, 27 Jan 2009 14:12:50 +0000 (15:12 +0100)]
Fix warning about XChangeProperty argument type

17 years agoRemove unused code
Alexander Larsson [Tue, 27 Jan 2009 14:12:37 +0000 (15:12 +0100)]
Remove unused code

17 years agoFix warning about wrong type in assignment
Alexander Larsson [Tue, 27 Jan 2009 14:12:00 +0000 (15:12 +0100)]
Fix warning about wrong type in assignment

17 years agoFix warning due to typo
Alexander Larsson [Tue, 27 Jan 2009 14:11:39 +0000 (15:11 +0100)]
Fix warning due to typo

17 years agoRemove unused label
Alexander Larsson [Tue, 27 Jan 2009 14:11:21 +0000 (15:11 +0100)]
Remove unused label

17 years agoAvoid warnings about non-handled GDK_EVENT_LAST enum
Alexander Larsson [Tue, 27 Jan 2009 14:10:45 +0000 (15:10 +0100)]
Avoid warnings about non-handled GDK_EVENT_LAST enum

17 years agoFix setting of private->shaped when setting input shape
Alexander Larsson [Tue, 27 Jan 2009 13:57:37 +0000 (14:57 +0100)]
Fix setting of private->shaped when setting input shape

I.e. it should only be set/unset when setting ShapeBounding.

17 years agoDon't look for EXPOSE mask set to disable bg none setting
Alexander Larsson [Tue, 27 Jan 2009 13:51:21 +0000 (14:51 +0100)]
Don't look for EXPOSE mask set to disable bg none setting

We always set EXPOSE in the client-side-windows world, so this
doesn't make sense anymore.

17 years agoFix typos in X11 details of new OSX APIs
Alexander Larsson [Tue, 27 Jan 2009 13:10:00 +0000 (14:10 +0100)]
Fix typos in X11 details of new OSX APIs

17 years agoDon't ignore native CROSSING_GRAB/UNGRAB events
Alexander Larsson [Mon, 26 Jan 2009 19:50:56 +0000 (20:50 +0100)]
Don't ignore native CROSSING_GRAB/UNGRAB events

These are sent when someone else grabs the pointer, and we don't
want to miss these expose events. For instance, we missed enter
and leave events on alt-tab.

There were some issues with these wrt out-of-sync grab information
in the client, but that should now be handled. So, it should work
or at least be fixable if we find some bug.

17 years agoTrack pointer grabs on Xserver time
Alexander Larsson [Mon, 26 Jan 2009 19:38:20 +0000 (20:38 +0100)]
Track pointer grabs on Xserver time

After a successful grab/ungrab we wait for an xserver
roundtrip until we change the tracked grab in GdkDisplay.
This way that data is always up-to-date wrt events comming in.

17 years agoAdd _gdk_x11_roundtrip_async
Alexander Larsson [Mon, 26 Jan 2009 18:55:08 +0000 (19:55 +0100)]
Add _gdk_x11_roundtrip_async

17 years agoUpdate for changes in the paintable interface
Richard Hult [Mon, 26 Jan 2009 19:33:33 +0000 (20:33 +0100)]
Update for changes in the paintable interface

Get rid of invalidate_maybe_recurse and process_updates. Implement
_gdk_windowing_{before,after}_process_all_updates(), and keep track of
when we're inside process_all_updates in the common code so we know
when to flush windows. Implement
_gdk_windowing_window_process_updates_recurse by means of
setNeedsDisplayInRect: displayIfNeeded. Use the added window argument
in begin_paint_region to get the right window (the paintable is always
the impl window now).

17 years agoCall _gdk_window_process_updates_recurse() in drawRect instead of creating our own...
Richard Hult [Mon, 26 Jan 2009 19:29:51 +0000 (20:29 +0100)]
Call _gdk_window_process_updates_recurse() in drawRect instead of creating our own expose events

17 years agoRemove invalidate_maybe_recurse and process_updates from the paintable interface
Richard Hult [Mon, 26 Jan 2009 18:29:26 +0000 (19:29 +0100)]
Remove invalidate_maybe_recurse and process_updates from the paintable interface

Replace them with two new functions
_gdk_windowing_{before,after}_process_all_updates() that are called
around the guts of gdk_window_process_all_updates(). Add empty ones
for X11 (nothing more needed), quartz ones will be implemented next.

17 years agoExpose _gdk_window_process_updates_recurse for backends
Richard Hult [Mon, 26 Jan 2009 18:12:54 +0000 (19:12 +0100)]
Expose _gdk_window_process_updates_recurse for backends

We use this in the added windowing function
_gdk_windowing_window_process_updates_recurse. The X11 implementation
just calls _gdk_window_process_updates_recurse directly, but at least
quartz will need to do some more work.

17 years agoAdd a window argument to begin_paint_region in the paintable interface
Richard Hult [Mon, 26 Jan 2009 17:47:47 +0000 (18:47 +0100)]
Add a window argument to begin_paint_region in the paintable interface

The paintable itself is now the impl window, which can be different
from the window.

17 years agoSetup ->impl_window on the root window
Richard Hult [Sat, 24 Jan 2009 09:05:00 +0000 (10:05 +0100)]
Setup ->impl_window on the root window

17 years agoAdd gdk_windowing_window_get_next_serial
Richard Hult [Sat, 24 Jan 2009 09:03:25 +0000 (10:03 +0100)]
Add gdk_windowing_window_get_next_serial

17 years agoRemove gdk_keyboard_grab_info_libgtk_only which moved to the common code
Richard Hult [Sat, 24 Jan 2009 08:46:06 +0000 (09:46 +0100)]
Remove gdk_keyboard_grab_info_libgtk_only which moved to the common code

17 years agoAdd serial argument to _gdk_windowing_got_event
Richard Hult [Sat, 24 Jan 2009 08:43:55 +0000 (09:43 +0100)]
Add serial argument to _gdk_windowing_got_event

17 years agoFix gdk_window_has_no_impl typo
Alexander Larsson [Mon, 26 Jan 2009 14:45:17 +0000 (15:45 +0100)]
Fix gdk_window_has_no_impl typo

17 years agoOnly set cursors on toplevel.
Alexander Larsson [Mon, 26 Jan 2009 11:54:02 +0000 (12:54 +0100)]
Only set cursors on toplevel.

This fixes a problem where we used to set them on a native window, but we
never unset it becase when the pointer moved to another native window
we just set the cursor on that window. Always setting on the toplevel
fixes this.

17 years agoSwitch motion hint emulation to be serial based.
Alexander Larsson [Fri, 23 Jan 2009 20:07:53 +0000 (21:07 +0100)]
Switch motion hint emulation to be serial based.

For backends not supporting serials, just have
_gdk_windowing_window_get_next_serial return zero.

17 years agoRevert "Convert all pending X events in _gdk_events_queue"
Alexander Larsson [Fri, 23 Jan 2009 19:11:21 +0000 (20:11 +0100)]
Revert "Convert all pending X events in _gdk_events_queue"

This reverts commit 7cc15ec6ea1504133dfe6febbdb12615550bb966.

Its risky to convert all the events in a go like this, as it
increases the out-of-order issues. It also isn't a full solution
to the motion hint issue as it will only work for the events
we happen to convert. It would be better to use serials to
handle motion hinting.

17 years agoKeep track of the impl windows wrapper directly with a ref
Alexander Larsson [Fri, 23 Jan 2009 19:08:39 +0000 (20:08 +0100)]
Keep track of the impl windows wrapper directly with a ref

This is needed so that the ->wrapper of the impl window doesn't
go away while there are virtual windows referencing the impl
window.

17 years agoUngrab keyboard if virtual window is hidden or destroyed
Alexander Larsson [Fri, 23 Jan 2009 14:39:04 +0000 (15:39 +0100)]
Ungrab keyboard if virtual window is hidden or destroyed

17 years agoMove keyboard grab state tracking code to common code
Alexander Larsson [Fri, 23 Jan 2009 14:23:19 +0000 (15:23 +0100)]
Move keyboard grab state tracking code to common code

17 years agoMove keyboard grab info to common code
Alexander Larsson [Fri, 23 Jan 2009 14:05:44 +0000 (15:05 +0100)]
Move keyboard grab info to common code

This is the first stage in tracking keyboard grabs in the common code.
This lets us handle destroying or unmapping virtual window with a
keyboard grab.

17 years agoConvert all pending X events in _gdk_events_queue
Alexander Larsson [Fri, 23 Jan 2009 12:15:04 +0000 (13:15 +0100)]
Convert all pending X events in _gdk_events_queue

If we only convert the first then motion hint emulation won't
work since we don't see the next motion even until we've
fully handled this one.

However, this changes a behaviour that has been like this since
the mists of time. I don't know if it could cause other issues.
I haven't seen any yet though.

17 years agoImplement GDK_POINTER_MOTION_HINT_MASK support
Alexander Larsson [Fri, 23 Jan 2009 12:04:44 +0000 (13:04 +0100)]
Implement GDK_POINTER_MOTION_HINT_MASK support

17 years agoNew flicker flicker fixing approach
Alexander Larsson [Thu, 22 Jan 2009 19:54:11 +0000 (20:54 +0100)]
New flicker flicker fixing approach

There was a performance problem with the old flicker fixing
approach. For moved windows we copied the window data to the double
buffer pixmap and then back to the window with the rest of the
expose data. In some cases the copy from window data to pixmap was
very slow because the pixmap was allocated in system memory and
the window in video memory.

The new approach is to delay all window moves and then replay them
after the expose has drawn to the double buffer pixmap but before
drawing it to the window. Furthermore, we remove all exposed areas
from the destination of the delayed moves so we won't copy something
just to then immediately draw over it.

This makes scrolling in firefox fast, and it makes tests/flicker not
show any (detectable) flicker.

17 years agogdk_window_process_updates_internal only needs to flush outstanding moves
Alexander Larsson [Thu, 22 Jan 2009 19:51:41 +0000 (20:51 +0100)]
gdk_window_process_updates_internal only needs to flush outstanding moves

17 years agoSplit out the flushing of outstanding moves
Alexander Larsson [Thu, 22 Jan 2009 19:50:06 +0000 (20:50 +0100)]
Split out the flushing of outstanding moves

Some places need to only flush the outstanding moves, split
this into gdk_window_flush_outstanding_move

17 years agoFlush any outstanding stuff in the window in non-buffered get_internal_paint_info...
Alexander Larsson [Thu, 22 Jan 2009 19:46:08 +0000 (20:46 +0100)]
Flush any outstanding stuff in the window in non-buffered get_internal_paint_info case

We return the raw window drawable, so its likely the app will do some
weird stuff to it, like draw using non-gdk operations. We don't want
the app to see any half-drawn state, so flush everything.

This fixes a scroll issue in firefox at least.

17 years agoClip exposed area to the visible region.
Alexander Larsson [Thu, 22 Jan 2009 14:18:03 +0000 (15:18 +0100)]
Clip exposed area to the visible region.

This avoids extra work, and it means we won't allocate large pixmaps
for double buffering.

17 years agoDon't allow native window > 65535 pixels
Alexander Larsson [Thu, 22 Jan 2009 13:10:19 +0000 (14:10 +0100)]
Don't allow native window > 65535 pixels

17 years agoFirst cut at getting events working
Richard Hult [Wed, 21 Jan 2009 18:09:34 +0000 (19:09 +0100)]
First cut at getting events working

17 years agoAttempt to implement draw_drawable with src = dest = window
Richard Hult [Wed, 21 Jan 2009 17:47:06 +0000 (18:47 +0100)]
Attempt to implement draw_drawable with src = dest = window

17 years agoRemove unused function _gdk_quartz_window_scroll
Richard Hult [Wed, 21 Jan 2009 17:41:56 +0000 (18:41 +0100)]
Remove unused function _gdk_quartz_window_scroll

17 years agoFix typos that broke loading without lazy symbol lookup
Richard Hult [Wed, 21 Jan 2009 17:35:37 +0000 (18:35 +0100)]
Fix typos that broke loading without lazy symbol lookup

17 years agoRemove autoreleasepool in drawRect, not necessary
Richard Hult [Tue, 20 Jan 2009 13:07:02 +0000 (14:07 +0100)]
Remove autoreleasepool in drawRect, not necessary

17 years agoOnly setup tracking rect for toplevels, we only want enter/leave for those
Richard Hult [Tue, 20 Jan 2009 13:06:39 +0000 (14:06 +0100)]
Only setup tracking rect for toplevels, we only want enter/leave for those

17 years agoDon't use drawable_get,release_context in _gdk_windowing_create_cairo_surface
Richard Hult [Tue, 20 Jan 2009 13:04:03 +0000 (14:04 +0100)]
Don't use drawable_get,release_context in _gdk_windowing_create_cairo_surface

This fixes a mismatch in save/release gstate for the CGContext. If
this function is ever used for pixmaps, we need to add support for
that, probably will have to do so soon.

17 years agoGet rid of all the synthesized crossing events except for ANCESTOR one on the toplevel
Richard Hult [Fri, 16 Jan 2009 19:57:43 +0000 (20:57 +0100)]
Get rid of all the synthesized crossing events except for ANCESTOR one on the toplevel

17 years agoRename _gdk_quartz_events_send_map_events to ..._event
Richard Hult [Fri, 16 Jan 2009 19:34:56 +0000 (20:34 +0100)]
Rename _gdk_quartz_events_send_map_events to ..._event

17 years agoClean up some whitespace
Richard Hult [Fri, 16 Jan 2009 19:22:51 +0000 (20:22 +0100)]
Clean up some whitespace

17 years agoAdd fill_crossing_event to be used soon
Richard Hult [Fri, 16 Jan 2009 19:22:01 +0000 (20:22 +0100)]
Add fill_crossing_event to be used soon

17 years agoOnly send map events for toplevels
Richard Hult [Fri, 16 Jan 2009 19:12:58 +0000 (20:12 +0100)]
Only send map events for toplevels

17 years agoAdd enter/leave notify to get_event_mask_from_ns_event now that those are handled...
Richard Hult [Fri, 16 Jan 2009 18:51:15 +0000 (19:51 +0100)]
Add enter/leave notify to get_event_mask_from_ns_event now that those are handled like other events

17 years agoClean up the scroll support a little
Richard Hult [Fri, 16 Jan 2009 18:47:16 +0000 (19:47 +0100)]
Clean up the scroll support a little

17 years agoMake the various fill_*_event functions consistent
Richard Hult [Fri, 16 Jan 2009 18:42:09 +0000 (19:42 +0100)]
Make the various fill_*_event functions consistent

17 years agoRework the event translation to look more like X11
Richard Hult [Fri, 16 Jan 2009 11:21:46 +0000 (12:21 +0100)]
Rework the event translation to look more like X11

Put the event in the queue with a pending flag, remove again if not
handled.

17 years agoUpdate the window size after getting windowDidResize
Richard Hult [Wed, 7 Jan 2009 20:26:55 +0000 (21:26 +0100)]
Update the window size after getting windowDidResize

17 years agoRemove the old workarond for broken tracking rects
Richard Hult [Wed, 7 Jan 2009 20:25:12 +0000 (21:25 +0100)]
Remove the old workarond for broken tracking rects

The one that puts windows outside the screen and moves them in when
showing. It might not be needed anymore and the workaround doesn't
work with the client-side window branch anyway because the window is
already mapped when we get showed for some reason.

17 years agoHandle NULL event mask in _gdk_windowing_window_at_pointer
Richard Hult [Wed, 7 Jan 2009 14:44:52 +0000 (15:44 +0100)]
Handle NULL event mask in _gdk_windowing_window_at_pointer

17 years agoFix bug from first patch round, get private from window, not from impl
Richard Hult [Wed, 7 Jan 2009 14:42:06 +0000 (15:42 +0100)]
Fix bug from first patch round, get private from window, not from impl

17 years agoOffset subviews with the parent's abs coordinate
Richard Hult [Wed, 7 Jan 2009 14:16:46 +0000 (15:16 +0100)]
Offset subviews with the parent's abs coordinate

17 years agoChange window check to quartz window check in gdkinput
Richard Hult [Wed, 7 Jan 2009 13:11:13 +0000 (14:11 +0100)]
Change window check to quartz window check in gdkinput

17 years agoSetup iface for queue_translation/antiexpose
Richard Hult [Wed, 7 Jan 2009 13:09:10 +0000 (14:09 +0100)]
Setup iface for queue_translation/antiexpose

17 years agoAdd quartz window check macro
Richard Hult [Wed, 7 Jan 2009 13:08:02 +0000 (14:08 +0100)]
Add quartz window check macro

17 years agoAdd stubs for queue_translation/antiexpose
Richard Hult [Wed, 7 Jan 2009 13:07:47 +0000 (14:07 +0100)]
Add stubs for queue_translation/antiexpose

17 years agoImplement _gdk_windowing_create_cairo_surface
Richard Hult [Mon, 5 Jan 2009 21:42:36 +0000 (22:42 +0100)]
Implement _gdk_windowing_create_cairo_surface

17 years agoRemove gdk_display_pointer_is_grabbed and gdk_pointer_grab_info_libgtk_only
Richard Hult [Mon, 5 Jan 2009 21:11:36 +0000 (22:11 +0100)]
Remove gdk_display_pointer_is_grabbed and gdk_pointer_grab_info_libgtk_only

17 years agoRemove gdk_window_set_child_input_shapes
Richard Hult [Mon, 5 Jan 2009 21:11:19 +0000 (22:11 +0100)]
Remove gdk_window_set_child_input_shapes

17 years agoUpdate more toplevel checks and update set_background and back_pixmap
Richard Hult [Mon, 5 Jan 2009 20:57:04 +0000 (21:57 +0100)]
Update more toplevel checks and update set_background and back_pixmap

17 years agoAdd mask argument to _gdk_windowing_window_at_pointer, and update more checks
Richard Hult [Mon, 5 Jan 2009 20:27:16 +0000 (21:27 +0100)]
Add mask argument to _gdk_windowing_window_at_pointer, and update more checks

17 years agoUpdate gdk_window_get_deskrelative_origin, gdk_window_get_root_origin, gdk_window_get...
Richard Hult [Mon, 5 Jan 2009 20:10:00 +0000 (21:10 +0100)]
Update gdk_window_get_deskrelative_origin, gdk_window_get_root_origin, gdk_window_get_frame_extents

17 years agoUpdate gdk_window_quartz_set_background and gdk_window_quartz_set_back_pixmap
Richard Hult [Mon, 5 Jan 2009 20:07:13 +0000 (21:07 +0100)]
Update gdk_window_quartz_set_background and gdk_window_quartz_set_back_pixmap

17 years agoAdd more toplevel window checks
Richard Hult [Mon, 5 Jan 2009 19:35:25 +0000 (20:35 +0100)]
Add more toplevel window checks

17 years agoUpdate set_urgency_hint/geometry_hints/modal_hint/set_skip_taskbar_hint/set_skip_page...
Richard Hult [Mon, 5 Jan 2009 18:41:04 +0000 (19:41 +0100)]
Update set_urgency_hint/geometry_hints/modal_hint/set_skip_taskbar_hint/set_skip_pager_hint

17 years agoUpdate gdk_window_set_type_hint and gdk_window_get_type_hint
Richard Hult [Mon, 5 Jan 2009 18:37:47 +0000 (19:37 +0100)]
Update gdk_window_set_type_hint and gdk_window_get_type_hint

17 years agoUpdate gdk_window_focus
Richard Hult [Mon, 5 Jan 2009 18:36:24 +0000 (19:36 +0100)]
Update gdk_window_focus

17 years agoRemove gdk_window_quartz_clear_area
Richard Hult [Mon, 5 Jan 2009 18:33:32 +0000 (19:33 +0100)]
Remove gdk_window_quartz_clear_area

17 years agoUpdate gdk_window_quartz_reparent
Richard Hult [Mon, 5 Jan 2009 18:32:52 +0000 (19:32 +0100)]
Update gdk_window_quartz_reparent

17 years agoUpdate gtk_window_quartz_hide
Richard Hult [Mon, 5 Jan 2009 17:09:28 +0000 (18:09 +0100)]
Update gtk_window_quartz_hide

17 years agoUpdate signature for gdk_window_quartz_show and adapt the implementation
Richard Hult [Mon, 5 Jan 2009 17:05:22 +0000 (18:05 +0100)]
Update signature for gdk_window_quartz_show and adapt the implementation

17 years agoRename _gdk_windowing_window_destroy to _gdk_quartz_window_destroy and add to the...
Richard Hult [Mon, 5 Jan 2009 15:26:33 +0000 (16:26 +0100)]
Rename _gdk_windowing_window_destroy to _gdk_quartz_window_destroy and add to the impl iface

17 years agoUpdate _gdk_window_impl_new and add private variables where we changed impl to private
Richard Hult [Mon, 5 Jan 2009 15:22:47 +0000 (16:22 +0100)]
Update _gdk_window_impl_new and add private variables where we changed impl to private

17 years agoRemove width/height from GdkWindowImplQuartz and use those in GdkWindowObject
Richard Hult [Mon, 5 Jan 2009 14:56:57 +0000 (15:56 +0100)]
Remove width/height from GdkWindowImplQuartz and use those in GdkWindowObject

17 years agoRemove get_size and get_visible region
Richard Hult [Mon, 5 Jan 2009 14:39:44 +0000 (15:39 +0100)]
Remove get_size and get_visible region

17 years agoDon't init size in gdk_window_impl_quartz_init
Richard Hult [Mon, 5 Jan 2009 14:36:22 +0000 (15:36 +0100)]
Don't init size in gdk_window_impl_quartz_init

17 years agoInclude check for offscreen windows in WINDOW_IS_TOPLEVEL
Richard Hult [Mon, 5 Jan 2009 14:34:44 +0000 (15:34 +0100)]
Include check for offscreen windows in WINDOW_IS_TOPLEVEL

17 years agoAdd reset_origin argument to _gdk_windowing_gc_set_clip_region
Richard Hult [Mon, 5 Jan 2009 14:30:34 +0000 (15:30 +0100)]
Add reset_origin argument to _gdk_windowing_gc_set_clip_region

17 years agotestwindows - support for manually selecting window pos and size
Alexander Larsson [Thu, 22 Jan 2009 12:10:57 +0000 (13:10 +0100)]
testwindows - support for manually selecting window pos and size

17 years agoFix typo in pixmap window backing
Alexander Larsson [Wed, 21 Jan 2009 15:28:49 +0000 (16:28 +0100)]
Fix typo in pixmap window backing

It should be backing_y_offset, not backing_x_offset for exposure_y_offset.

17 years agoDon't send expose events if region is empty
Alexander Larsson [Wed, 21 Jan 2009 15:28:05 +0000 (16:28 +0100)]
Don't send expose events if region is empty

17 years agoDon't expose a temporary grab during a scrollwheel button press/release cycle.
Alexander Larsson [Wed, 21 Jan 2009 13:42:46 +0000 (14:42 +0100)]
Don't expose a temporary grab during a scrollwheel button press/release cycle.

If we do this there is a short window where we think there is a grab, and
if we generate a client side pointer motion event in this time (e.g. from
a window move) we could be delivering that according to the grab. But in
the Xserver that grab is infinitely short as it sends Press and then
Release immediately.

To see a problem from this, try using the scrollwheel to quickly scroll
in the testgtk list of buttons.

17 years agoHandle native children correctly in gdk_window_scroll
Alexander Larsson [Wed, 21 Jan 2009 12:44:39 +0000 (13:44 +0100)]
Handle native children correctly in gdk_window_scroll

This is basically the same fix as was done for
gdk_window_move_resize_internal. We make sure not to move the native
child window contents twice and we don't copy data that was overwritten
by the moving of the native child windows.

17 years agoAdd support for scrolling to testwindows
Alexander Larsson [Wed, 21 Jan 2009 12:11:54 +0000 (13:11 +0100)]
Add support for scrolling to testwindows

17 years agoIfdef out x11 specific code
Alexander Larsson [Wed, 21 Jan 2009 10:23:51 +0000 (11:23 +0100)]
Ifdef out x11 specific code

17 years agoFix performance issue with find_native_sibling_above
Alexander Larsson [Tue, 20 Jan 2009 22:58:22 +0000 (23:58 +0100)]
Fix performance issue with find_native_sibling_above

It keep recursing a lot, unnecessary

17 years agoFix resize of native children
Alexander Larsson [Tue, 20 Jan 2009 22:36:03 +0000 (23:36 +0100)]
Fix resize of native children

We now set the size to the right value before calling move_resize, so
the check for if the move_resize is just a move broke. Always call
move_resize()

17 years agoCall backend move_resize with the right coords/size
Alexander Larsson [Tue, 20 Jan 2009 22:34:00 +0000 (23:34 +0100)]
Call backend move_resize with the right coords/size

We calculated and set the new position and size, just pass that.
This avoids parsing the "special values" again

17 years agoMake _gdk_x11_window_tmp_unset_parent_bg not change above the toplevel window
Alexander Larsson [Tue, 20 Jan 2009 22:31:51 +0000 (23:31 +0100)]
Make _gdk_x11_window_tmp_unset_parent_bg not change above the toplevel window

17 years agoMake moving subwindows correctly handle native windows
Alexander Larsson [Tue, 20 Jan 2009 22:03:16 +0000 (23:03 +0100)]
Make moving subwindows correctly handle native windows

Whenever a native window is moved this causes an immediate change in
the window (the window content is copied). This change conflicts can
conflict with outstanding moves or other cached changed, so we need
to flush all outstanding moves in the related windows.

To simplify the code for window move/resize the toplevel version was
split out to its own function.

Move native windows after recomputing so that we get the right new
shape before moving (and the implied copy). This means we're not
copying too much data.

Take into account the area of a moved window that contains native
subwindows, as these affect things in two ways:

First of all we shouldn't copy the original window location, as that
is copied by the native window move.

Secondly, we can't copy things  that would end up copying from the
native window move destination, as the data that used to be there is
now destroyed by the native window move.

17 years agodo_move_region_bits_on_impl needs to copy from overlapping native windows too
Alexander Larsson [Tue, 20 Jan 2009 21:29:19 +0000 (22:29 +0100)]
do_move_region_bits_on_impl needs to copy from overlapping native windows too

It can happen that another native window is re-shaped over the region to
be moved, this will not destroy the data (since we're unsetting the background
when we reshape), but it will mean we need to read from this window.

We already used INCLUDE_INFERIORS, but that only handle subwindows. We fix
this by doing the copy on the toplevel, offsetting the copy to compensate for
this.

17 years agomove_region_on_impl - shortcut if region is empty
Alexander Larsson [Tue, 20 Jan 2009 21:17:06 +0000 (22:17 +0100)]
move_region_on_impl - shortcut if region is empty

17 years agoFix various problem with temporarily unsetting background
Alexander Larsson [Tue, 20 Jan 2009 20:59:04 +0000 (21:59 +0100)]
Fix various problem with temporarily unsetting background

All the calls that unset private->parent failed if that was
not a native window (impl), instead we need to find the impl window
for the parent. Add some helper functions for this and use them.

For move/resize of child windows, we really need to recursively unset
on the parent, because moving the window could expose other native
children of the parent.

In do_shape_combine_region, only unset background if we're changing
the bounding shape (i.e. not the input shape)